﻿#region << 版 本 注 释 >>

/*----------------------------------------------------------------
* 类 名 称 ：IResLoaderStrategy
* 类 描 述 ：
* 作    者 ：henrychang
* 创建时间 ：2019/1/6 18:29:52
*******************************************************************
* Copyright @ henrychang 2019. All rights reserved.
*******************************************************************
//----------------------------------------------------------------*/

#endregion << 版 本 注 释 >>

namespace TouchFish.AssetLoad
{
    /// <summary>
    /// 资源加载策略
    /// </summary>
    public interface IResLoaderStrategy
    {
        void OnAllTaskFinish(IResLoader loader);

        void OnSyncLoadFinish(IResLoader loader, IRes res);

        //void OnSyncLoadFinish(IResLoader loader, AssetBundleRes res);

        //void OnSyncLoadFinish(IResLoader loader, AssetRes res);

        void OnSyncLoadFinish(IResLoader loader, InternalRes res);

        void OnAsyncLoadFinish(IResLoader loader, IRes res);

        //void OnAsyncLoadFinish(IResLoader loader, AssetBundleRes res);

        //void OnAsyncLoadFinish(IResLoader loader, AssetRes res);

        void OnAsyncLoadFinish(IResLoader loader, InternalRes res);
    }

    public class AbstractResLoaderStrategy : IResLoaderStrategy
    {
        public virtual void OnAllTaskFinish(IResLoader loader)
        {
        }

        public virtual void OnSyncLoadFinish(IResLoader loader, IRes res)
        {
        }

        public virtual void OnSyncLoadFinish(IResLoader loader, AssetBundleRes res)
        {
        }

        //public virtual void OnSyncLoadFinish(IResLoader loader, AssetRes res)
        //{
        //}

        public virtual void OnSyncLoadFinish(IResLoader loader, InternalRes res)
        {
        }

        public virtual void OnAsyncLoadFinish(IResLoader loader, IRes res)
        {
        }

        public virtual void OnAsyncLoadFinish(IResLoader loader, AssetBundleRes res)
        {
        }

        //public virtual void OnAsyncLoadFinish(IResLoader loader, AssetRes res)
        //{
        //}

        public virtual void OnAsyncLoadFinish(IResLoader loader, InternalRes res)
        {
        }
    }
}